using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.UI.Common;
using Sinacor.Infra.Common.Validation;
using Sinacor.UI.Bovespa.ContaCorrente.Model;

namespace Sinacor.UI.Bovespa.ContaCorrente.Presenter
{

    public class PesquisaHistoricoContaCorrente : BasePresenter<IPesquisaHistoricoContaCorrente>
    {
        private Model.Parameter.FiltroHistoricoContaCorrente _filtroHistoricoContaCorrente = new Model.Parameter.FiltroHistoricoContaCorrente();
        private Model.HistoricoContaCorrente _historicoContaCorrenteSelecionada;
        private ModelCollection<Model.HistoricoContaCorrente> _listaHistoricoContaCorrente;
        private Communication.ContaCorrente _communicationContaCorrente;

        public Model.Parameter.FiltroHistoricoContaCorrente FiltroHistoricoContaCorrente
        {
            get
            {
                return _filtroHistoricoContaCorrente;
            }
            set
            {
                _filtroHistoricoContaCorrente = value;
            }
        }

        public ModelCollection<HistoricoContaCorrente> ListaHistoricoContaCorrente
        {
            get
            {
                return _listaHistoricoContaCorrente;
            }
            set
            {
                _listaHistoricoContaCorrente = value;
            }
        }

        public Model.HistoricoContaCorrente HistoricoContaCorrenteSelecionada
        {
            get
            {
                return _historicoContaCorrenteSelecionada;
            }
            set
            {
                _historicoContaCorrenteSelecionada = value;
            }
        }

        public PesquisaHistoricoContaCorrente(IPesquisaHistoricoContaCorrente view)
            : base(view) {}

		public void ConsultarHistoricoContasCorrentes()
        {
            _listaHistoricoContaCorrente = _communicationContaCorrente.ConsultarHistoricoContasCorrentes(this.FiltroHistoricoContaCorrente);
        }

		public void Inicializar()
        {
            _communicationContaCorrente = new Sinacor.UI.Bovespa.ContaCorrente.Communication.ContaCorrente(this.Session);
            _listaHistoricoContaCorrente = new ModelCollection<HistoricoContaCorrente>();
        }

        public void LimpaFiltro()
        {
            FiltroHistoricoContaCorrente = new Sinacor.UI.Bovespa.ContaCorrente.Model.Parameter.FiltroHistoricoContaCorrente();
        }

        public void LimpaListaHistorico()
        {
            ListaHistoricoContaCorrente = new ModelCollection<HistoricoContaCorrente>();
        }

	}
}